package com.hnichr.crm.oauth.service;


import com.hnichr.crm.oauth.vo.AccessTokenCheckVo;
import com.hnichr.crm.oauth.vo.AccessTokenVo;
import com.hnichr.crm.oauth.vo.UserInfoVo;

/**
 * oauth2相关接口
 *
 * @author chenxingyang
 */
public interface OAuth2Service {

	/**
	 * 获取令牌
	 *
	 * @param code 授权码
	 * @return
	 */
	AccessTokenVo getAccessToken(String code);

	/**
	 * 刷新令牌
	 *
	 * @param refreshToken 刷新令牌
	 * @return
	 */
	AccessTokenVo refreshToken(String refreshToken);

	/**
	 * 校验令牌
	 *
	 * @param accessToken 令牌
	 * @return
	 */
	AccessTokenCheckVo checkToken(String accessToken);

	/**
	 * 获取用户信息
	 *
	 * @param accessToken 令牌
	 * @return
	 */
	UserInfoVo getUserInfo(String accessToken);

}
